package com.takeoff.iot.modbus.netty.handle;

import java.nio.ByteOrder;
import com.takeoff.iot.modbus.common.message.ModbusMessage;
import io.netty.handler.codec.LengthFieldBasedFrameDecoder;

/**
 * 类功能说明：自定义解码器长度，解决TCP粘包黏包问题<br/>
 * 公司名称：TF（腾飞）开源 <br/>
 * 作者：luorongxi <br/>
 */
public class ModbusBasedFrameDecoder extends LengthFieldBasedFrameDecoder {

	public ModbusBasedFrameDecoder(){
		// ByteOrder.LITTLE_ENDIAN 小端字节序
		// Integer.MAX_VALUE 最大接收值
		// ModbusMessage.READ_DATA_LENGTH_INDEX 指定数据长度开始位置
		// ModbusMessage.BYTE_SIZE 表示数据长度的位数
		// 2 要多读的位数 这两位是CRC
		// 0 最开始要忽略的位数
		super(ByteOrder.LITTLE_ENDIAN, Integer.MAX_VALUE, ModbusMessage.READ_DATA_LENGTH_INDEX, ModbusMessage.BYTE_SIZE, 2, 0, true);
	}

}
